﻿using System;
using System.Data;
using System.Data.SqlClient;

/// <summary>
/// ODS para los usuarios que no han sido validados y se requiere hacerlo manualmente
/// </summary>
public class UsuariosNoActivadosODS
{
    /* Ingresa los valores al ListView de las últimas cuentas de alumnos que no han sido validadas
     * param startRowIndex: el número de row inicial del ListView
     * param maximumRows: el último row que es contado
     */
    public DataTable NoValidadasData(Int32 startRowIndex, Int32 maximumRows)
    {
        startRowIndex = startRowIndex + 1;
        Int32 lastRow = startRowIndex + (maximumRows - 1);
        String selectQueryString = "SELECT * FROM (SELECT Alumnos.Matricula, " +
                                   "Alumnos.Nombre + ' ' + Alumnos.Apellido AS [NombreAlumno], " +
                                   "CONVERT(VARCHAR(25), Alumnos.FechaCreacion, 0) AS FechaDeCreacion, " +
                                   "ROW_NUMBER() OVER (ORDER BY Alumnos.FechaCreacion DESC) AS [RowNumber] " +
                                   "FROM Alumnos WHERE Alumnos.CuentaValidada = 0) AS TEMP " +
                                   "WHERE [RowNumber] BETWEEN @startRowIndex AND @lastRow";

        DataTable dataTableObject = new DataTable();
        using (SqlCommand selectQueryCommand = new SqlCommand(selectQueryString))
        {
            selectQueryCommand.Parameters.Add(new SqlParameter("@startRowIndex", startRowIndex));
            selectQueryCommand.Parameters.Add(new SqlParameter("@lastRow", lastRow));
            DatabaseConnection dbCon = new DatabaseConnection();
            using (SqlDataAdapter dataAdapter = dbCon.DataAdapter(selectQueryCommand))
            {
                dataAdapter.Fill(dataTableObject);
            }
            dbCon.CloseConnection();
        }
        return dataTableObject;
    }


    // Regresa el número de solicitudes que se han generado hasta la fecha
    public Int32 NoValidadasDataCount()
    {
        using (SqlCommand countNoValidadas = new SqlCommand("SELECT COUNT(*) FROM Alumnos WHERE Alumnos.CuentaValidada = 0"))
        {
            DatabaseConnection dbCon = new DatabaseConnection();
            Int32 numeroCuentas = dbCon.ExecuteScalar(countNoValidadas);
            dbCon.CloseConnection();
            return numeroCuentas;
        }
    }

}